Data storage systems are arrangements of hardware and software that include storage processors coupled to arrays of non-volatile storage devices. In typical operation, storage processors service storage requests that arrive from client machines. The storage requests specify files or other data elements to be written, read, created, or deleted, for example. The storage processors run software that manages incoming storage requests and performs various data processing tasks to organize and secure the data stored on the non-volatile storage devices.
Some data storage systems implement snapshot technology to protect the data they store. For example, such a data storage system may present a file system to a client machine. The client machine accesses the file system and can make changes to its contents over time. To protect the file system and its state at various points in time, the data storage system may implement a snapshot policy and take snapshots, or “snaps,” of the file system at regular intervals or in response to user commands or particular events. Each snapshot provides a point-in-time version of the file system which users of client machines can access to restore from a previous version of the file system.